package com.wing.financeSet.model.request;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import com.wing.financeSet.model.entity.Account;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 账户Form
 *
 * @author
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class AccountForm {

    /**
     * ID
     */
    private Long id;

    /**
     * 创建者
     */
    private Long creator;

    /**
     * 修改者
     */
    private Long modifier;

    /**
     * 创建人
     */
    private String creatorName;

    /**
     * 修改人
     */
    private String modifierName;

    /**
     * 所属分类
     */
    private Account.AccountClassify accountClassify;

    /**
     * 账户类型id
     */
    private Long accountTypeId;

    /**
     * 币种
     */
    private Account.Currency currency;

    /**
     * 部门id
     */
    private Long departmentId;

    /**
     * 默认单位
     */
    private String unitName;

    /**
     * 开户银行
     */
    private String openingBank;

    /**
     * 银行账号户名
     */
    private String bankAccountName;

    /**
     * 银行账号
     */
    private String bankAccount;

    /**
     * 客户号
     */
    private String clientNumber;

    /**
    * 启用时间
    */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;

    /**
     * 余额方向
     */
    private Account.BalanceDirection balanceDirection;

    /**
     * 商户号
     */
    private String serveMerchantCode;

    /**
     * 服务商APPID
     */
    private Long facilitatorAppId;

    /**
     * 商户号
     */
    private String merchantCode;

    /**
     * 微信APPID
     */
    private Long wxAppId;

    /**
     * 微信支付密钥
     */
    private String wxPaySecretKey;

    /**
     * 微信支付证书
     */
    private String wxPaySecretCertificate;

    /**
     * 支付宝APPID
     */
    private Long alipayAppId;

    /**
     * 支付宝公钥
     */
    private String alipayPublicKey;

    /**
     * 商户公钥
     */
    private String commercialTenantPublicKey;

    /**
     * 商户私钥
     */
    private String commercialTenantSecretKey;

    /**
     * 商户授权令牌
     */
    private String authorizationToken;

    /**
     * 支付宝支付证书
     */
    private String alipayPaySecretCertificate;

    /**
     * 加密方式
     */
    private Account.SubjectType subjectType;

    /**
     * 排序
     */
    private Integer sortNumber;


    public interface Add{}

    public interface Update{}
}
